var mongodb = require('./db');
var ObjectID = require('mongodb').ObjectID;
    function Custom(custom) {
	this.mobile = custom.mobile;
	this.password = custom.password;
	this.remarkName = custom.remarkName;
	this.type = custom.type;
	this.time = custom.time;
	this.consultantId = custom.consultantId;
	this.shareMobile = custom.shareMobile;
	this.parentId = custom.parentId;
}

module.exports = Custom;

//存储用户信息
Custom.prototype.save = function (callback) {
	//要存入数据库的文档
	var custom = {
		mobile: this.mobile,
		remarkName: this.remarkName,
		type: this.type,
		time: this.time,
		consultantId: this.consultantId,
		shareMobile: this.shareMobile,
		parentId: this.parentId,
		password:this.password
	};
	//打开数据库
	mongodb.open(function(err, db) {
		if (err) {
			return callback(err); //错误， 返回err信息
		}
		//读取 customs 集合
		db.collection('customs', function(err, collection) {
			if (err) {
				mongodb.close();
				return callback(err); //错误， 返回 err 信息
			}
			//将用户数据插入 users 集合
			collection.insert(custom, {
				safe: true
			}, function (err, custom) {
				mongodb.close();
				if (err) {
					return callback(err); //错误， 返回 err 信息
				}
				callback(null, custom[0]); //成功！err为null，并返回存储后的用户文档
			});
		});
	});
};
Custom.get = function(mobile, callback) {
    //打开数据库
    mongodb.open(function(err, db) {
        if (err) {
            return callback(err); //错误，返回 err 信息
        }
        //读取 users 集合
        db.collection('customs', function(err, collection) {
            if (err) {
                mongodb.close();
                return callback(err); //错误，返回 err 信息
            }
            //查找用户名（name键）值为 name 一个文档
            collection.findOne({
                mobile: mobile
            }, function(err, custom) {
                mongodb.close();
                if (err) {
                    return callback(err); //失败！返回 err 信息
                }
                callback(null, customs); //成功！返回查询的用户信息
            });
        });
    });
};
//读取用户信息（用户名）
Custom.get = function(callback) {
	//打开数据库
	mongodb.open(function(err, db) {
		if(err) {
			return callback(err);
		}
		db.collection('customs', function (err, collection) {
			if(err) {
				mongodb.close();
				return callback(err);
			}
			collection.find({}).toArray(function (err, docs) {
				mongodb.close();
				if (err) {
					return callback(err);
				}
				callback(null, docs);
			});
		});
	});
};
//根据ID读取一条用户信息
Custom.getOneMessage = function(_id, callback) {
    //打开数据库
    mongodb.open(function (err, db) {
        if (err) {
            return callback(err);
        }
        //读取 custom 集合
        db.collection('customs', function(err, collection) {
            if (err) {
                mongodb.close();
                return callback(err);
            }

            //根据 _id 对象查询文章
            collection.findOne({
                "_id": new ObjectID(_id)
            }, function(err, custom){
                mongodb.close();
                if (err) {
                    return callback(err);//失败！返回 err
                }
                callback(null, custom);//成功！以数组形式返回查询的结果
            });

        });
    });
};
//读取10条用户信息
Custom.getTenCustom = function(query, page, callback) {
	mongodb.open(function (err, db) {
		if(err){
			return callback(err);
		}
		db.collection('customs', function (err, collection){
			if(err) {
				mongodb.close();
				return callback(err);
			}
			collection.count(query, function (err, total) {
				collection.find(query, {
					skip: (page - 1)*10,
                    limit: 10
				}).sort({
					time: -1
				}).toArray(function (err, docs) {
					mongodb.close();
					if(err) {
						return callback(err);
					}
					callback(null, docs, total);
				});
			});
		});
	});
};
//读取parent
Custom.getParent = function(shareMobile ,callback) {
	//打开数据库
    mongodb.open(function(err, db) {
        if(err){
            return callback(err);
        }
		//读取custom集合
		db.collection('customs', function(err, collection) {
			if(err) {
				mongodb.close();
				return callback(err);
			}
            //var query = {};aaaa
            // if (shareMobile) {
            //     query.mobile = shareMobile;
            // }
			//根据shareMobile对象查询文章
			//var mobile = shareMobile;
			collection.find({
				mobile : shareMobile
			}).toArray(function (err, docs) {
				mongodb.close();
				if(err) {
					console.log(err);
					return callback(err);
				}
				callback(null, docs);
			})
		});
	});
};

//获取子节点
Custom.getchilds = function(parentID ,callback) {
	//打开数据库
    mongodb.open(function(err, db) {
        if(err){
            return callback(err);
        }
		//读取custom集合
		db.collection('customs', function(err, collection) {
			if(err) {
				mongodb.close();
				return callback(err);
			}
			//根据parentId对象查询child
			// var query = {
			// 	parentId : parentID
			// };
			collection.find({
				parentId : new ObjectID(parentID)
			}).toArray(function (err, child) {
				mongodb.close();
				if(err) {
					console.log(err);
					return callback(err);
				}
				callback(null, child);
			})
		});
	});
};

//修改客户信息
Custom.delete = function(_id,callback){
	mongodb.open(function (err, db) {
        if (err) {
            return callback(err);
        }
        db.collection('customs', function (err, collection) {
			if(err) {
				mongodb.close();
				return callback(err);
		
			}
		collection.remove({
                "_id": new ObjectID(_id)
            },{
            	w:1
            },function(err){
                mongodb.close();
                if (err) {
                    return callback(err);//失败！返回 err
                }
                callback(null);//成功
            });
		});
	});

};
Custom.userLogin = function(mobile, callback){
	mongodb.open(function(err, db) {
		if(err){
			return callback(err);
		}
		db.collection('customs', function(err, collection) {
			if(err){
				mongodb.close();
				return callback(err); 
			}
			collection.findOne({
                mobile : mobile
            },function(err, custom) {
				mongodb.close();
				if(err) {
					return callback(err);
				}
				callback(null, custom);
			});
		});
	});
};
